#include <iostream>
#include "singleton.h"
#include "singletonmanager.h"

using namespace raytracer;

class SingletonTest1 :
   public Singleton<SingletonTest1>
{
   SINGLETON_IMP(SingletonTest1)
};

class SingletonTest2 : public raytracer::Singleton<SingletonTest2>

{
   SINGLETON_IMP(SingletonTest2)
};


class SingletonTest3 : public raytracer::Singleton<SingletonTest3>
                     , DependOn<SingletonTest2>
                     , DependOn<SingletonTest1>
{
   SINGLETON_IMP(SingletonTest3)

};

int main(int argc, char **argv)
{
   std::cout << &SingletonTest3::instance() << std::endl;
   std::cout << &SingletonTest3::instance() << std::endl;

   return 0;
}
